home *** CD-ROM | disk | FTP | other *** search
- /************************************************************
-
- Created: Friday, June 4, 1993 at 10:05AM
- ADSPSecure.h
- C Interface to the Macintosh Libraries
-
- Copyright Apple Computer, Inc. 1990-1993
- All rights reserved
-
- ************************************************************/
-
-
- #ifndef __ADSPSECURE__
- #define __ADSPSECURE__
-
- #ifndef __ADSP__
- #include <ADSP.h>
- #endif
-
- #ifndef __FILES__
- #include <Files.h>
- #endif
-
- #ifndef __OCE__
- #include <OCE.h>
- #endif
-
- #ifndef __OCEAUTHDIR__
- #include <OCEAuthDir.h>
- #endif
-
- #ifndef __TYPES__
- #include <Types.h>
- #endif
-
-
- /* New ADSP control codes */
-
- enum {sdspOpen = 229}; /* open a secure connection */
-
-
-
- /*
- For secure connections, the eom field of ioParams contains two single-bit flags
- (instead of a zero/non-zero byte). They are an encrypt flag (see below), and an
- eom flag. All other bits in that field should be zero.
-
- To write an encrypted message, you must set an encrypt bit in the eom field of
- the ioParams of your write call. Note: this flag is only checked on the first
- write of a message (the first write on a connection, or the first write following
- a write with eom set.
- */
-
- enum {
- dspEOMBit, /* set if EOM at end of write */
- dspEncryptBit /* set to encrypt message */
- };
-
- enum {
- dspEOMMask = 1<<dspEOMBit,
- dspEncryptMask = 1<<dspEncryptBit
- };
-
-
-
- /*
- Define an ADSPSecure parameter block, as used for the secure Open call.
- */
-
- #define sdspWorkSize 2048 /* size of ADSPSecure workspace */
-
- struct TRSecureParams {
- unsigned short localCID; /* local connection id */
- unsigned short remoteCID; /* remote connection id */
- AddrBlock remoteAddress; /* address of remote end */
- AddrBlock filterAddress; /* address filter */
- unsigned long sendSeq; /* local send sequence number */
- unsigned short sendWindow; /* send window size */
- unsigned long recvSeq; /* receive sequence number */
- unsigned long attnSendSeq; /* attention send sequence number */
- unsigned long attnRecvSeq; /* attention receive sequence number */
- unsigned char ocMode; /* open connection mode */
- unsigned char ocInterval; /* open connection request retry interval */
- unsigned char ocMaximum; /* open connection request retry maximum */
-
- Boolean secure; /* --> TRUE if session was authenticated */
- AuthKeyPtr sessionKey; /* <--> encryption key for session */
- unsigned long credentialsSize; /* --> length of credentials */
- Ptr credentials; /* --> pointer to credentials */
- Ptr workspace; /* --> pointer to workspace for connection */
- /* align on even boundary and length = sdspWorkSize */
- AuthIdentity recipient; /* --> identity of recipient (or initiator if active mode */
- UTCTime issueTime; /* --> when credentials were issued */
- UTCTime expiry; /* --> when credentials expiry */
- RecordIDPtr initiator; /* <-- RecordID of initiator returned here.
- Must give appropriate Buffer to hold RecordID
- (Only for passive or accept mode) */
- Boolean hasIntermediary; /* <-- will be set if credentials has an intermediary */
- RecordIDPtr intermediary; /* <-- RecordID of intermediary returned here.
- (If intermediary is found in credentials
- Must give appropriate Buffer to hold RecordID
- (Only for passive or accept mode) */
- };
-
- typedef struct TRSecureParams TRSecureParams;
-
-
- struct SDSPParamBlock {
- struct QElem *qLink;
- short qType;
- short ioTrap;
- Ptr ioCmdAddr;
- ProcPtr ioCompletion;
- OSErr ioResult;
- char *ioNamePtr;
- short ioVRefNum;
- short ioCRefNum; /* adsp driver refNum */
- short csCode; /* adsp driver control code */
- long qStatus; /* adsp internal use */
- short ccbRefNum; /* connection end refNum */
- union {
- TRinitParams initParams; /* dspInit, dspCLInit */
- TRopenParams openParams; /* dspOpen, dspCLListen, dspCLDeny */
- TRcloseParams closeParams; /* dspClose, dspRemove */
- TRioParams ioParams; /* dspRead, dspWrite */
- TRattnParams attnParams; /* dspAttention */
- TRstatusParams statusParams; /* dspStatus */
- TRoptionParams optionParams; /* dspOptions */
- TRnewcidParams newCIDParams; /* dspNewCID */
- TRSecureParams secureParams; /* dspOpenSecure */
- } u;
- };
-
- typedef struct SDSPParamBlock SDSPParamBlock;
- typedef SDSPParamBlock *SDSPPBPtr;
-
- #endif
-